package net.yla.smartbus.module.ba.right.login.service;

import net.yla.smartbus.module.ba.right.account.entity.AccountsDO;
import net.yla.smartbus.module.ba.right.admin.entity.AdminDO;
import net.yla.smartbus.module.ba.right.login.dto.LoginDTO;
import net.yla.smartbus.module.ba.right.login.dto.UserSession;
import net.yla.smartbus.module.ba.right.login.dto.UserSessionReturnDTO;
import net.yla.smartbus.module.ba.right.login.form.LoginForm;

import java.util.List;
import java.util.Map;

/**
 * @Date: 2020-08-12 15:16
 * @Author: Being Nobody
 * @Version: 1.0
 */
public interface AccountLoginService {
    /**
     * 账号密码登录
     *
     * @param form
     * @return
     */
    LoginDTO passwordLogin(LoginForm form, String ip, String userAgent);

    /**
     * 获取用户登录信息
     *
     * @param adminDO
     * @return
     */
    UserSession getLoginDTO(AccountsDO adminDO);

    /**
     * 登录token续期
     *
     * @param token
     * @return
     */
    UserSessionReturnDTO loginRenewal(String token);

    void loginOut(String token);

    Map<Integer, Map<Integer, Integer>> rights(List<Integer> roles);


}
